#include <stdio.h>
#include "esp32_s3_szp.h"
#include "shi_du.h"
#include "baojing.h"
#include "w.h"
#include "wen_du.h"
#include "qing_xie.h"
#include "guang_zhao.h"
#include "1.h"
#include "2.h"
#include "3.h"
#include "4.h"
#include "5.h"
#include "6.h"
#include "7.h"
#include "8.h"
#include "9.h"
#include "0.h"
#include "x.h"
#include "y.h"
#include "z.h"
#include "ws.h"
#include "hy.h"
#include <string.h>
#include "driver/uart.h"
#include <math.h>
#include <fu.h>
#include <fz.h>
static const char *TAG = "main";
t_sQMI8658 QMI8658;
static uint xyzflag = 1 ,wdflag=1;
#define UART_NUM        UART_NUM_2
#define TX_PIN          11
#define RX_PIN          10
#define BAUD_RATE       115200
#define BUF_SIZE        1024
char humidity_str[16];   // "55.0"
char temperature_str[16]; // "29.8"
char guang_str[8];        // "0"
// 全局变量定义在函数外部
static char str_data[256];
static int str_len = 0;
uint8_t data[BUF_SIZE];
uint8_t x,y,z,w,g,s,sxiao1;
typedef struct {
    int  ten;     // 十位，范围 -9~9
    int  one;     // 个位，范围 -9~9
    float dec;    // 小数部分，范围 0.0~0.9
} NumParts;

NumParts split_float(float num) {
    NumParts p;
    int n      = (int)num;            // 带符号整数
    p.dec      = roundf(fabsf(num - n) * 10) / 10.0f;

    int sign   = (n < 0) ? -1 : 1;
    int absN   = abs(n);
    p.ten      = sign * ((absN / 10) % 10);
    p.one      = sign * (absN % 10);

    return p;
}

void app_main(void)
{
    bsp_i2c_init();  // I2C初始化
    pca9557_init();  // IO扩展芯片初始化
    bsp_lcd_init();  // 液晶屏初始化
  
    


    // UART 配置
    const uart_config_t uart_cfg = {
        .baud_rate = BAUD_RATE,
        .data_bits = UART_DATA_8_BITS,
        .parity    = UART_PARITY_DISABLE,
        .stop_bits = UART_STOP_BITS_1,
        .flow_ctrl = UART_HW_FLOWCTRL_DISABLE,
        .source_clk= UART_SCLK_APB
    };
    
    uart_param_config(UART_NUM, &uart_cfg);
    uart_set_pin(UART_NUM, TX_PIN, RX_PIN, UART_PIN_NO_CHANGE, UART_PIN_NO_CHANGE);
    
    // 安装UART驱动
    uart_driver_install(UART_NUM, BUF_SIZE, 0, 0, NULL, 0);

    const char *str = "a";
    uart_write_bytes(UART_NUM, str, strlen(str));
    
    qmi8658_init(); // 初始化传感器
    
    // 初始化全局变量
    str_len = 0;
    memset(str_data, 0, sizeof(str_data));
    lcd_draw_pictrue(0, 0, 80, 80, gImage_shi_du);  // 显示湿度
   // lcd_draw_pictrue(0, 80,80, 240, gImage_baojing);  // 显示温度报警 
    lcd_draw_pictrue(80, 0, 80+80, 80, gImage_wen_du); // 显示温度
    lcd_draw_pictrue(85, 120, 85+16 ,120+45, gImage_1);
    lcd_draw_pictrue(80+80, 0, 80+80+80, 80, gImage_guang_zhao); // 显示光照
    lcd_draw_pictrue( 80+80+80, 0,  80+80+80+80, 80, gImage_qing_xie); // 显示倾斜角
    NumParts wd;
    NumParts sdd;
    NumParts xx;
    NumParts yy;
    NumParts zz;
        while (1)
    {
        // 1. 读取串口数据
        int len = uart_read_bytes(UART_NUM, data, BUF_SIZE - 1, 20 / portTICK_PERIOD_MS);
        
 if (len > 0) {
    int start_len = str_len;

    for (int i = 0; i < len && str_len < sizeof(str_data) - 1; i++) {
        if (data[i] >= 0x20 || data[i] == 0x0A || data[i] == 0x0D) {
            str_data[str_len++] = data[i];
        }
    }
    str_data[str_len] = '\0';

    char *newline = strchr(str_data + start_len, '\n');
    if (newline) {
        *newline = '\0';
       // ESP_LOGI(TAG, "收到有效帧: %s", str_data);

        sscanf(str_data,
               "Humidity: %15[^,], Temperature: %15[^g]guang,%7s",
               humidity_str,
               temperature_str,
               guang_str);

        int processed_len = newline - str_data + 1;
        int remaining = str_len - processed_len;
        memmove(str_data, str_data + processed_len, remaining);
        str_len = remaining;
        str_data[str_len] = '\0';
    }
}
        
       sscanf(str_data,
       "Humidity: %15[^,], Temperature: %15[^g]guang,%7s",
       humidity_str,
       temperature_str,
       guang_str);
              ESP_LOGI(TAG, "湿度: %s", humidity_str);
       ESP_LOGI(TAG, "温度: %s", temperature_str);
       //ESP_LOGI(TAG, "光照: %s", guang_str);
       float humidity_value = atof(humidity_str); 
       float Temperature1 = atof(temperature_str); 
       float Guang1 = atof(guang_str); 
       sdd=split_float(humidity_value);
       wd=split_float(Temperature1);
       
       if (sdd.ten==0)
       {
          lcd_draw_pictrue(24, 130,24+16, 130+45, gImage_0);  // 显示温度报警 
       }
              if (sdd.ten==1)
       {
          lcd_draw_pictrue(24, 130,24+16, 130+45, gImage_1);  // 显示温度报警 
       }
              if (sdd.ten==2)
       {
          lcd_draw_pictrue(24, 130,24+16, 130+45, gImage_2);  // 显示温度报警 
       }
              if (sdd.ten==3)
       {
          lcd_draw_pictrue(24, 130,24+16, 130+45, gImage_3);  // 显示温度报警 
       }

              if (sdd.ten==4)
       {
          lcd_draw_pictrue(24, 130,24+16, 130+45, gImage_4);  // 显示温度报警 
       }
              if (sdd.ten==5)
       {
          lcd_draw_pictrue(24, 130,24+16, 130+45, gImage_5);  // 显示温度报警 
       }
              if (sdd.ten==6)
       {
          lcd_draw_pictrue(24, 130,24+16, 130+45, gImage_6);  // 显示温度报警 
       }

              if (sdd.ten==7)
       {
          lcd_draw_pictrue(24, 130,24+16, 130+45, gImage_7);  // 显示温度报警 
       }
              if (sdd.ten==8)
       {
          lcd_draw_pictrue(24, 130,24+16, 130+45, gImage_8);  // 显示温度报警 
       }
              if (sdd.ten==9)
       {
          lcd_draw_pictrue(24, 130,24+16, 130+45, gImage_9);  // 显示温度报警 
       }

              if (sdd.one==0)
       {
          lcd_draw_pictrue(24+16, 130,24+16+16, 130+45, gImage_0);  // 显示温度报警 
       }
              if (sdd.one==1)
       {
          lcd_draw_pictrue(24+16, 130,24+16+16, 130+45, gImage_1);  // 显示温度报警 
       }
              if (sdd.one==2)
       {
          lcd_draw_pictrue(24+16, 130,24+16+16, 130+45, gImage_2);  // 显示温度报警 
       }
              if (sdd.one==3)
       {
          lcd_draw_pictrue(24+16, 130,24+16+16, 130+45, gImage_3);  // 显示温度报警 
       }

              if (sdd.one==4)
       {
          lcd_draw_pictrue(24+16, 130,24+16+16, 130+45, gImage_4);  // 显示温度报警 
       }
              if (sdd.one==5)
       {
          lcd_draw_pictrue(24+16, 130,24+16+16, 130+45, gImage_5);  // 显示温度报警 
       }
              if (sdd.one==6)
       {
          lcd_draw_pictrue(24+16, 130,24+16+16, 130+45, gImage_6);  // 显示温度报警 
       }

              if (sdd.one==7)
       {
          lcd_draw_pictrue(24+16, 130,24+16+16, 130+45, gImage_7);  // 显示温度报警 
       }
              if (sdd.one==8)
       {
          lcd_draw_pictrue(24+16, 130,24+16+16, 130+45, gImage_8);  // 显示温度报警 
       }
              if (sdd.one==9)
       {
          lcd_draw_pictrue(24+16, 130,24+16+16, 130+45, gImage_9);  // 显示温度报警 
       }
       if(humidity_value>50){
       ESP_LOGI(TAG, "湿度超标！！！");
       }else{
       ESP_LOGI(TAG, "湿度合格");

       }
              if (wd.ten==0)
       {
          lcd_draw_pictrue(24+80, 130,24+16+80, 130+45, gImage_0);  // 显示温度报警 
       }
              if (wd.ten==1)
       {
          lcd_draw_pictrue(24+80, 130,24+16+80, 130+45, gImage_1);  // 显示温度报警 
       }
              if (wd.ten==2)
       {
          lcd_draw_pictrue(24+80, 130,24+16+80, 130+45, gImage_2);  // 显示温度报警 
       }
              if (wd.ten==3)
       {
          lcd_draw_pictrue(24+80, 130,24+16+80, 130+45, gImage_3);  // 显示温度报警 
       }

              if (wd.ten==4)
       {
          lcd_draw_pictrue(24+80, 130,24+16+80, 130+45, gImage_4);  // 显示温度报警 
       }
              if (wd.ten==5)
       {
          lcd_draw_pictrue(24+80, 130,24+16+80, 130+45, gImage_5);  // 显示温度报警 
       }
              if (wd.ten==6)
       {
          lcd_draw_pictrue(24+80, 130,24+16+80, 130+45, gImage_6);  // 显示温度报警 
       }

              if (wd.ten==7)
       {
          lcd_draw_pictrue(24+80, 130,24+16+80, 130+45, gImage_7);  // 显示温度报警 
       }
              if (wd.ten==8)
       {
          lcd_draw_pictrue(24+80, 130,24+16+80, 130+45, gImage_8);  // 显示温度报警 
       }
              if (wd.ten==9)
       {
          lcd_draw_pictrue(24+80, 130,24+16+80, 130+45, gImage_9);  // 显示温度报警 
       }

              if (wd.one==0)
       {
          lcd_draw_pictrue(24+16+80, 130,24+16+16+80, 130+45, gImage_0);  // 显示温度报警 
       }
              if (wd.one==1)
       {
          lcd_draw_pictrue(24+16+80, 130,24+16+16+80, 130+45, gImage_1);  // 显示温度报警 
       }
              if (wd.one==2)
       {
          lcd_draw_pictrue(24+16+80, 130,24+16+16+80, 130+45, gImage_2);  // 显示温度报警 
       }
              if (wd.one==3)
       {
          lcd_draw_pictrue(24+16+80, 130,24+16+16+80, 130+45, gImage_3);  // 显示温度报警 
       }

              if (wd.one==4)
       {
          lcd_draw_pictrue(24+16+80, 130,24+16+16+80, 130+45, gImage_4);  // 显示温度报警 
       }
              if (wd.one==5)
       {
          lcd_draw_pictrue(24+16+80 ,130,24+16+16+80, 130+45, gImage_5);  // 显示温度报警 
       }
              if (wd.one==6)
       {
          lcd_draw_pictrue(24+16+80, 130,24+16+16+80, 130+45, gImage_6);  // 显示温度报警 
       }

              if (wd.one==7)
       {
          lcd_draw_pictrue(24+16+80, 130,24+16+16+80, 130+45, gImage_7);  // 显示温度报警 
       }
              if (wd.one==8)
       {
          lcd_draw_pictrue(24+16+80, 130,24+16+16+80, 130+45, gImage_8);  // 显示温度报警 
       }
              if (wd.one==9)
       {
          lcd_draw_pictrue(24+16+80, 130,24+16+16+80, 130+45, gImage_9);  // 显示温度报警 
       }
       if(Temperature1>40){
       lcd_draw_pictrue(0+80, 80,80+80, 240, gImage_baojing);  // 显示温度报警 
       ESP_LOGI(TAG, "热失控提醒！！！");wdflag=1;
       }else{
        ESP_LOGI(TAG, "温度合格");
        if(wdflag==1){wdflag=0;
        lcd_draw_pictrue(0+80, 80,80+80, 240, gImage_hy);}  // 显示温度报警 
       }
       if(Guang1>0){
       lcd_draw_pictrue(80+80, 80,80+80+80, 240, gImage_baojing);  // 显示温度报警 
       ESP_LOGI(TAG, "意外光照！！！");
       }else{
        ESP_LOGI(TAG, "光照合格");
        lcd_draw_pictrue(80+80, 80,80+80+80, 240, gImage_fz); 
       }
    
        // 2. 发送数据（每秒一次）
        uart_write_bytes(UART_NUM, str, strlen(str));
        
        // 3. 获取传感器数据
        qmi8658_fetch_angleFromAcc(&QMI8658);

        if (QMI8658.AngleX>30)
        {
           x=1 ; ESP_LOGI(TAG, "x轴倾斜角超限！！！");
        }else if (QMI8658.AngleX<-30)
        {
            x=1 ;ESP_LOGI(TAG, "x轴倾斜角超限！！！");
        }else
        {
         x=0;
       
        }
           if (QMI8658.AngleY>30)
        {
           y=1 ;ESP_LOGI(TAG, "y轴倾斜角超限！！！");
        }else if (QMI8658.AngleY<-30)
        {
            y=1 ;ESP_LOGI(TAG, "y轴倾斜角超限！！！");
        }else
        {
         y=0;
        
        }
                   if (QMI8658.AngleZ>30)
        {
           z=1 ;ESP_LOGI(TAG, "z轴倾斜角超限！！！");
        }else if (QMI8658.AngleZ<-30)
        {
            z=1 ;ESP_LOGI(TAG, "z轴倾斜角超限！！！");
        }else
        {
         z=0;
       
        }

       
        if (x==1||y==1||z==1)
        {xyzflag=1;
          lcd_draw_pictrue(80+80+80, 80,80+80+80+80, 240, gImage_baojing);  // 显示温度报警 
        }else{
            if(xyzflag==1){
        lcd_draw_pictrue(80+80+80, 80,80+80+80+80, 240, gImage_hy);
          xyzflag=0;  }
         lcd_draw_pictrue(80+80+80, 80,80+80+80+14,  80+45, gImage_x);
          lcd_draw_pictrue(80+80+80, 80+50,80+80+80+14, 80+50+45, gImage_y);
           lcd_draw_pictrue(80+80+80, 80+50+50,80+80+80+15, 80+50+50+45, gImage_z);
            lcd_draw_pictrue(80+80+80+14, 80,80+80+80+14+8,  80+45, gImage_ws);
          lcd_draw_pictrue(80+80+80+14, 80+50,80+80+80+14+8, 80+50+45, gImage_ws);
           lcd_draw_pictrue(80+80+80+14, 80+50+50,80+80+80+14+8, 80+50+50+45, gImage_ws);
        }

        xx=split_float(QMI8658.AngleX);
       yy=split_float(QMI8658.AngleY);
        zz=split_float(QMI8658.AngleZ);
        if(xyzflag==0){
               if (yy.ten==0)
       {
          lcd_draw_pictrue(80+80+80+14+8, 130,80+80+80+14+8+16, 130+45, gImage_0);  // 显示温度报警 
       }
              if (yy.ten==1||yy.ten==-1)
       {
          lcd_draw_pictrue(80+80+80+14+8, 130,80+80+80+14+8+16, 130+45, gImage_1);  // 显示温度报警 
       }
              if (yy.ten==2||yy.ten==-2)
       {
          lcd_draw_pictrue(80+80+80+14+8, 130,80+80+80+14+8+16, 130+45, gImage_2);  // 显示温度报警 
       }
              if (yy.ten==3||yy.ten==-3)
       {
          lcd_draw_pictrue(80+80+80+14+8, 130,80+80+80+14+8+16, 130+45, gImage_3);  // 显示温度报警 
       }

              if (yy.ten==4||yy.ten==-4)
       {
          lcd_draw_pictrue(80+80+80+14+8, 130,80+80+80+14+8+16, 130+45, gImage_4);  // 显示温度报警 
       }
              if (yy.ten==5||yy.ten==-5)
       {
          lcd_draw_pictrue(80+80+80+14+8, 130,80+80+80+14+8+16, 130+45, gImage_5);  // 显示温度报警 
       }
              if (yy.ten==6||yy.ten==-6)
       {
          lcd_draw_pictrue(80+80+80+14+8, 130,80+80+80+14+8+16, 130+45, gImage_6);  // 显示温度报警 
       }

              if (yy.ten==7||yy.ten==-7)
       {
          lcd_draw_pictrue(80+80+80+14+8, 130,80+80+80+14+8+16, 130+45, gImage_7);  // 显示温度报警 
       }
              if (yy.ten==8||yy.ten==-8)
       {
          lcd_draw_pictrue(80+80+80+14+8, 130,80+80+80+14+8+16, 130+45, gImage_8);  // 显示温度报警 
       }
              if (yy.ten==9||yy.ten==-9)
       {
          lcd_draw_pictrue(80+80+80+14+8, 130,80+80+80+14+8+16, 130+45, gImage_9);  // 显示温度报警 
       }

              if (yy.one==0)
       {
          lcd_draw_pictrue(80+80+80+14+8+16, 130,80+80+80+14+8+16+16, 130+45, gImage_0);  // 显示温度报警 
       }
              if (yy.one==1||yy.one==-1)
       {
          lcd_draw_pictrue(80+80+80+14+8+16, 130,80+80+80+14+8+16+16, 130+45, gImage_1);  // 显示温度报警 
       }
              if (yy.one==2||yy.one==-2)
       {
          lcd_draw_pictrue(80+80+80+14+8+16, 130,80+80+80+14+8+16+16, 130+45, gImage_2);  // 显示温度报警 
       }
              if (yy.one==3||yy.one==-3)
       {
          lcd_draw_pictrue(80+80+80+14+8+16, 130,80+80+80+14+8+16+16, 130+45, gImage_3);  // 显示温度报警 
       }

              if (yy.one==4||yy.one==-4)
       {
          lcd_draw_pictrue(80+80+80+14+8+16, 130,80+80+80+14+8+16+16, 130+45, gImage_4);  // 显示温度报警 
       }
              if (yy.one==5||yy.one==-5)
       {
          lcd_draw_pictrue(80+80+80+14+8+16 ,130,80+80+80+14+8+16+16, 130+45, gImage_5);  // 显示温度报警 
       }
              if (yy.one==6||yy.one==-6)
       {
          lcd_draw_pictrue(80+80+80+14+8+16, 130,80+80+80+14+8+16+16, 130+45, gImage_6);  // 显示温度报警 
       }

              if (yy.one==7||yy.one==-7)
       {
          lcd_draw_pictrue(80+80+80+14+8+16, 130,80+80+80+14+8+16+16, 130+45, gImage_7);  // 显示温度报警 
       }
              if (yy.one==8||yy.one==-8)
       {
          lcd_draw_pictrue(80+80+80+14+8+16, 130,80+80+80+14+8+16+16, 130+45, gImage_8);  // 显示温度报警 
       }
              if (yy.one==9||yy.one==-9)
       {
          lcd_draw_pictrue(80+80+80+14+8+16, 130,80+80+80+14+8+16+16, 130+45, gImage_9);  // 显示温度报警 
       }
       if(yy.one<0)
       {
         y=1;
         lcd_draw_pictrue(80+80+80+14+8+16+16, 130,80+80+80+14+8+16+16+15, 130+45, gImage_fu);
       }
       else{
       if(y==1){
        lcd_draw_pictrue(80+80+80, 80,80+80+80+80, 240, gImage_hy);y=0;
       }
       }
                      if (xx.ten==0)
       {
          lcd_draw_pictrue(80+80+80+14+8, 80,80+80+80+14+8+16, 80+45, gImage_0);  // 显示温度报警 
       }
              if (xx.ten==1||xx.ten==-1)
       {
          lcd_draw_pictrue(80+80+80+14+8, 80,80+80+80+14+8+16, 80+45, gImage_1);  // 显示温度报警 
       }
              if (xx.ten==2||xx.ten==-2)
       {
          lcd_draw_pictrue(80+80+80+14+8, 80,80+80+80+14+8+16, 80+45, gImage_2);  // 显示温度报警 
       }
              if (xx.ten==3||xx.ten==-3)
       {
          lcd_draw_pictrue(80+80+80+14+8, 80,80+80+80+14+8+16, 80+45, gImage_3);  // 显示温度报警 
       }

              if (xx.ten==4||xx.ten==-4)
       {
          lcd_draw_pictrue(80+80+80+14+8, 80,80+80+80+14+8+16, 80+45, gImage_4);  // 显示温度报警 
       }
              if (xx.ten==5||xx.ten==-5)
       {
          lcd_draw_pictrue(80+80+80+14+8, 80,80+80+80+14+8+16, 80+45, gImage_5);  // 显示温度报警 
       }
              if (xx.ten==6||xx.ten==-6)
       {
          lcd_draw_pictrue(80+80+80+14+8, 80,80+80+80+14+8+16, 80+45, gImage_6);  // 显示温度报警 
       }

              if (xx.ten==7||xx.ten==-7)
       {
          lcd_draw_pictrue(80+80+80+14+8, 80,80+80+80+14+8+16, 80+45, gImage_7);  // 显示温度报警 
       }
              if (xx.ten==8||xx.ten==-8)
       {
          lcd_draw_pictrue(80+80+80+14+8, 80,80+80+80+14+8+16, 80+45, gImage_8);  // 显示温度报警 
       }
              if (xx.ten==9||xx.ten==-9)
       {
          lcd_draw_pictrue(80+80+80+14+8, 80,80+80+80+14+8+16, 80+45, gImage_9);  // 显示温度报警 
       }

              if (xx.one==0)
       {
          lcd_draw_pictrue(80+80+80+14+8+16, 80,80+80+80+14+8+16+16, 80+45, gImage_0);  // 显示温度报警 
       }
              if (xx.one==1||xx.one==-1)
       {
          lcd_draw_pictrue(80+80+80+14+8+16, 80,80+80+80+14+8+16+16, 80+45, gImage_1);  // 显示温度报警 
       }
              if (xx.one==2||xx.one==-2)
       {
          lcd_draw_pictrue(80+80+80+14+8+16, 80,80+80+80+14+8+16+16, 80+45, gImage_2);  // 显示温度报警 
       }
              if (xx.one==3||xx.one==-3)
       {
          lcd_draw_pictrue(80+80+80+14+8+16, 80,80+80+80+14+8+16+16, 80+45, gImage_3);  // 显示温度报警 
       }

              if (xx.one==4||xx.one==-4)
       {
          lcd_draw_pictrue(80+80+80+14+8+16, 80,80+80+80+14+8+16+16, 80+45, gImage_4);  // 显示温度报警 
       }
              if (xx.one==5||xx.one==-5)
       {
          lcd_draw_pictrue(80+80+80+14+8+16 ,80,80+80+80+14+8+16+16, 80+45, gImage_5);  // 显示温度报警 
       }
              if (xx.one==6||xx.one==-6)
       {
          lcd_draw_pictrue(80+80+80+14+8+16, 80,80+80+80+14+8+16+16, 80+45, gImage_6);  // 显示温度报警 
       }

              if (xx.one==7||xx.one==-7)
       {
          lcd_draw_pictrue(80+80+80+14+8+16, 80,80+80+80+14+8+16+16, 80+45, gImage_7);  // 显示温度报警 
       }
              if (xx.one==8||xx.one==-8)
       {
          lcd_draw_pictrue(80+80+80+14+8+16, 80,80+80+80+14+8+16+16, 80+45, gImage_8);  // 显示温度报警 
       }
              if (xx.one==9||xx.one==-9)
       {
          lcd_draw_pictrue(80+80+80+14+8+16, 80,80+80+80+14+8+16+16, 80+45, gImage_9);  // 显示温度报警 
       }
       if(xx.one<0)
       {
         x=1;
         lcd_draw_pictrue(80+80+80+14+8+16+16, 80,80+80+80+14+8+16+16+15, 80+45, gImage_fu);
       }
       else{
       if(x==1){
lcd_draw_pictrue(80+80+80, 80,80+80+80+80, 240, gImage_hy);x=0;
       }


       }

                             if (zz.ten==0)
       {
          lcd_draw_pictrue(80+80+80+14+8, 80+100,80+80+80+14+8+16, 80+45+100, gImage_0);  // 显示温度报警 
       }
              if (zz.ten==1||zz.ten==-1)
       {
          lcd_draw_pictrue(80+80+80+14+8, 80+100,80+80+80+14+8+16, 80+45+100, gImage_1);  // 显示温度报警 
       }
              if (zz.ten==2||zz.ten==-2)
       {
          lcd_draw_pictrue(80+80+80+14+8, 80+100,80+80+80+14+8+16, 80+45+100, gImage_2);  // 显示温度报警 
       }
              if (zz.ten==3||zz.ten==-3)
       {
          lcd_draw_pictrue(80+80+80+14+8, 80+100,80+80+80+14+8+16, 80+45+100, gImage_3);  // 显示温度报警 
       }

              if (zz.ten==4||zz.ten==-4)
       {
          lcd_draw_pictrue(80+80+80+14+8, 80+100,80+80+80+14+8+16, 80+45+100, gImage_4);  // 显示温度报警 
       }
              if (zz.ten==5||zz.ten==-5)
       {
          lcd_draw_pictrue(80+80+80+14+8, 80+100,80+80+80+14+8+16, 80+45+100, gImage_5);  // 显示温度报警 
       }
              if (zz.ten==6||zz.ten==-6)
       {
          lcd_draw_pictrue(80+80+80+14+8, 80+100,80+80+80+14+8+16, 80+45+100, gImage_6);  // 显示温度报警 
       }

              if (zz.ten==7||zz.ten==-7)
       {
          lcd_draw_pictrue(80+80+80+14+8, 80+100,80+80+80+14+8+16, 80+45+100, gImage_7);  // 显示温度报警 
       }
              if (zz.ten==8||zz.ten==-8)
       {
          lcd_draw_pictrue(80+80+80+14+8, 80+100,80+80+80+14+8+16, 80+45+100, gImage_8);  // 显示温度报警 
       }
              if (zz.ten==9||zz.ten==-9)
       {
          lcd_draw_pictrue(80+80+80+14+8, 80+100,80+80+80+14+8+16, 80+45+100, gImage_9);  // 显示温度报警 
       }
         
              if (zz.one==0)
       {
          lcd_draw_pictrue(80+80+80+14+8+16, 80+100,80+80+80+14+8+16+16, 80+45+100, gImage_0);  // 显示温度报警 
       }
              if (zz.one==1||zz.one==-1)
       {
          lcd_draw_pictrue(80+80+80+14+8+16, 80+100,80+80+80+14+8+16+16, 80+45+100, gImage_1);  // 显示温度报警 
       }
              if (zz.one==2||zz.one==-2)
       {
          lcd_draw_pictrue(80+80+80+14+8+16, 80+100,80+80+80+14+8+16+16, 80+45+100, gImage_2);  // 显示温度报警 
       }
              if (zz.one==3||zz.one==-3)
       {
          lcd_draw_pictrue(80+80+80+14+8+16, 80+100,80+80+80+14+8+16+16, 80+45+100, gImage_3);  // 显示温度报警 
       }

              if (zz.one==4||zz.one==-4)
       {
          lcd_draw_pictrue(80+80+80+14+8+16, 80+100,80+80+80+14+8+16+16, 80+45+100, gImage_4);  // 显示温度报警 
       }
              if (zz.one==5||zz.one==-5)
       {
          lcd_draw_pictrue(80+80+80+14+8+16 ,80+100,80+80+80+14+8+16+16, 80+45+100, gImage_5);  // 显示温度报警 
       }
              if (zz.one==6||zz.one==-6)
       {
          lcd_draw_pictrue(80+80+80+14+8+16, 80+100,80+80+80+14+8+16+16, 80+45+100, gImage_6);  // 显示温度报警 
       }

              if (zz.one==7||zz.one==-7)
       {
          lcd_draw_pictrue(80+80+80+14+8+16, 80+100,80+80+80+14+8+16+16, 80+45+100, gImage_7);  // 显示温度报警 
       }
              if (zz.one==8||zz.one==-8)
       {
          lcd_draw_pictrue(80+80+80+14+8+16, 80+100,80+80+80+14+8+16+16, 80+45+100, gImage_8);  // 显示温度报警 
       }
              if (zz.one==9||zz.one==-9)
       {
          lcd_draw_pictrue(80+80+80+14+8+16, 80+100,80+80+80+14+8+16+16, 80+45+100, gImage_9);  // 显示温度报警 
       }
      if(zz.one<0)
      {
        z=1; 
       lcd_draw_pictrue(80+80+80+14+8+16+16, 80+100,80+80+80+14+8+16+16+15, 80+45+100, gImage_fu); 
      }
       else{
        if(z==1)
        {
          lcd_draw_pictrue(80+80+80, 80,80+80+80+80, 240, gImage_hy);
           z=0;
        }

       }
      
      }
        ESP_LOGI(TAG, "x轴 = %.1f  y轴 = %.1f z轴 = %.1f",
                QMI8658.AngleX, QMI8658.AngleY, QMI8658.AngleZ);
        
        // 4. 延时1秒
        vTaskDelay(1000 / portTICK_PERIOD_MS);
    }
}







